home *** CD-ROM | disk | FTP | other *** search
/ Win '95 Giga Pack / Win95 Giga Pack (Maple Media) (1997).iso / UTILITY / WNBT32 / FIXES.TX_ < prev    next >
Text File  |  1996-03-24  |  48KB  |  1,372 lines

  1.   **************************************************************************
  2.   IMPORTANT NOTICE:  In the 32-bit version, the following functions, which
  3.   used to return space-delimited lists of items:
  4.  
  5.     DirItemize
  6.     DiskScan
  7.     FileItemize
  8.  
  9.   now return tab-delimited lists.  This can be changed using the new
  10.   IntControl(29).  See "DLL 2.2abh" section below for more information.
  11.  
  12.   --------------------------------------------------------------------------
  13.  
  14.   In the 32-bit version, the following functions work only with 32-bit apps:
  15.  
  16.     AppExist
  17.     AppWaitClose
  18.     WinExeName
  19.  
  20.   See "DLL 2.2abk" section below for more information.
  21.  
  22.   **************************************************************************
  23.  
  24. WinBatch/WIL DLL fixes.  Dates indicate disk drop into manufacturing.  Actual
  25. ship is often a week or two later.
  26.  
  27. 5.0H    Sept 1, 1994
  28.         Initial public release
  29.  
  30. 5.0J    Sept 10, 1994
  31.         Network Extender fixes
  32.  
  33. 5.0K    Sept 19, 1994
  34.         Fixed "Use Older / Use Newer" swap in Confirm Replace dialog
  35.         Fixed problem where \*.* was required on a target directory on
  36.         FileCopy/FileMove functions (Oops See 5.0N)
  37.  
  38. 5.0L    Sept 26, 1994
  39.         Fixed MenuChange function
  40.         Added DiskSize function
  41.         Added \\machine\share capability to DiskFree and DiskSize functions
  42.  
  43.         WinBatch 32 for Intel PCs available
  44.  
  45. 5.0M    Oct 3, 1994
  46.         Fixed TimeDiffSecs function
  47.         Fixed DDERequest memory leak problem
  48.         Started adding this fixes.txt file
  49.  
  50. 5.0N    Oct 10 1994
  51.         Fixed memory leak on Dialog() function when CTL3DV2 was used.
  52.         New n3Logout function in Novell3 extender
  53.         Really fixed the \*.* problem.  Previous fix only copied
  54.             the first file.
  55.         Modified the DiskFree, DiskSize, and FileSize functions to
  56.            return a floating point answer if the result is larger than
  57.            about 2 Gigabytes
  58.         Fixed Novell 3 Extenders (DLL10G)
  59.               n3Map fixed to work with ODI drivers
  60.               n3GetMapped
  61.               n3MemberSet
  62.               n3MemberDel
  63.  
  64. 5.0P    Oct 19 1994
  65.         Fixed FileSize for 32bit versions to return the proper answer
  66.         Fixed a bug in StrIndex where a @backscan on a one character
  67.            string would provide an incorrect answer.
  68.         Fixed problem in CopyMove confirm dialog - Cancel works now.
  69.         Fixed problem in CopyMove dialog - missing source file error caught before
  70.            dialog.
  71.         Fixed problem where Dialog function dialog boxes used BUTTON_FACE color
  72.            instead of LTGRAY color.
  73.         Fixed Novell 4 Extenders (DLL10H)
  74.               n4Map (improved)
  75.               n4GetMapped
  76.               n4MemberSet
  77.               n4MemberDel
  78.         Novell DLL's updated from the Novell 11/93 release to the 2/94 release
  79.  
  80.         WinBatch 32 for Dec Alpha and MIPS now available.
  81.  
  82.  
  83.  
  84.  
  85. Actually, its almost pointless to watch the Winbatch version number, as nearly all
  86. the fixes appear in the Dll, which has its own version numbering scheme. 
  87. Henceforth, we will be tracking the DLL version number.  The WinBatch
  88. VersionDll() function will return the DLL version.
  89. This is already built into the SYSINFO.WBT file.
  90.  
  91. DLL 2.1ebc   Oct 26
  92.         First showing up in WinBatch 5.0Q
  93.         User pointed out problems in the sin and cos routines.  Problem traced to
  94.         what appear to be singularity-type problems in the Microsoft runtime
  95.         cos and sin routines.  The Dll now checks for the bad numbers, and if it is
  96.         in the range where the runtime routines fail, it stuffs in an appropriate
  97.         answer. Fix installed in the 16 bit version only, as the 32 bit versions
  98.         do not seem to have this problem in the runtimes.
  99.  
  100.         Fixed a nit in the dialog editor where, when it was requested to
  101.         display a script, would do so in a dialog box with a "(Unlicensed)"
  102.         in the title.
  103.  
  104.         Fix a parser problem where an error occurred when the first part
  105.         of a variable name matched a function name provided by the calling
  106.         exe program.  This problem first showed up in using a "Dialog1"
  107.         name for a dialog in the Dialog Editor.
  108.  
  109.         Fixed a SendKey to DOS bug where stuff like {UP} did not work when
  110.         the NumLock was set.  Fixed by turning off NumLock when sending
  111.         keystrokes to DOS.
  112.  
  113. DLL 2.1fbc
  114.         Fixed look of Dialog boxes (back to white) when CTL3DV2.DLL is
  115.         not installed on system.
  116.  
  117.         Fixed >very insignificant< problem where if a user did an
  118.         AddExtender for the same DLL twice (or more) only one instance
  119.         of the DLL was freed when the WBT file shut down.
  120.  
  121.         Fixed problem in 32 bit version for Windows'95 where default
  122.         directory was not set properly in =C: environment variable.
  123.         This problem caused wildcarded filenames to be improperly
  124.         resolved into real filenames.
  125.  
  126.         Fixed problem in 16 bit version where DirRemove always
  127.         returned a true, whether or not the directory was deleted.
  128.         If the directory is not deleted, it now returns a suppressable,
  129.         1030 error.
  130.  
  131.  
  132. DLL 2.2abf  First showing up in WB 5.1A
  133.  
  134.         Because of a data structure change to support more binary
  135.         buffers (5 was coded, 10 was documented) the main dll
  136.         renamed to WBDBFxxx.dll
  137.  
  138.         Fixed TimeDiffSecs (again).  If the first date was smaller
  139.         than the second date, the answer could be incorrect.
  140.  
  141.         Fixed a problem in FileAppend where the following code would not
  142.         work properly.
  143.         FileAppend("AAA.*","BBB.TXT")
  144.  
  145.         The DLL now does better <Ctrl-Break> checking.
  146.         SendKey slowed down a minor tad to help other applications out.
  147.  
  148.         32Bit versions will try harder to locate the WIL DLL on startup.
  149.  
  150.         The compiler time check of various DLLS has been removed because
  151.         of assorted problems.  We'll just roll the DLL name instead when
  152.         incompatibilities arise.  The DLL appears to be extremely stable,
  153.         and the bug fixes implemented lately tend to be minor (see above)
  154.  
  155.         A buglet where an ItemInsert on a null string installed a leading
  156.         delimiter before the inserted item - leading to a list with two
  157.         items, the first being null, and the second being the desired item
  158.         - was fixed.  When ItemInsert'ing into a null list, no leading
  159.         delimiter is stuffed in.
  160.  
  161.         A problem with PlayWaveForm where it was not checking the [Sounds]
  162.         section of the WIN.INI file for all possible cases has been fixed.
  163.  
  164.         Fixed a problem with FileCopy/FileMove, where the target was ".."
  165.         and it was a root directory.
  166.  
  167.         DirExist now returns TRUE for hidden and system directories.  It
  168.         also uses an improved method (hopefully) of checking for root
  169.         directories and directories with relative paths (eg, "..\TEMP").
  170.  
  171.         Changed FileExist to return a value of '2' if the specified file
  172.         exists but is currently open by another application in "read-deny"
  173.         mode.  Most of the other file manipulation functions (except
  174.         FileOpen) will cause a sharing violation if they try to access
  175.         such a file.
  176.  
  177.         Fixed problems handling file and directory names containing high
  178.         ANSI characters (>127).
  179.  
  180.         Fixed a problem that occurred if, inside a FOR loop, the user
  181.         changed the increment variable to a string.
  182.  
  183.         Fixed an intermittent problem with performing comparisons of
  184.         negative floating point numbers.
  185.  
  186.         FileFullName now correctly expands "dot" directories
  187.         ("." and "..") in the path name.
  188.  
  189.         Fixed a problem processing lines such as "Gosub %param1%" inside
  190.         conditional structures, when param1 was undefined.
  191.  
  192.         (32-bit version) Fixed some incompatabilities with Windows 95:
  193.             FileAppend
  194.             FileMove
  195.             MsgTextGet
  196.             WinActivate (where the specified parent window had a modal
  197.                child window displayed -- focus was going to the parent
  198.                window instead of to the child window)
  199.  
  200.         Fixed a problem with accessing the DLL if it was located in the
  201.         parent directory and ".." was on the path.
  202.  
  203.         FileCopy, FileMove, and FileAppend now check for sufficient free
  204.         disk space before performing the requested operation, and return
  205.         an error if there is insufficient space, as follows:
  206.  
  207.           1404  FileCopy: Insufficient free space on target drive
  208.           1405  FileMove: Insufficient free space on target drive
  209.           1406  FileAppend: Insufficient free space on target drive
  210.  
  211.  
  212. NetWare 3 extender 12012  First showing up in WB 5.1A
  213.  
  214.   New functions:
  215.  
  216.     n3ServerList(request)
  217.       Returns name of connected server(s)
  218.  
  219.     n3FileAttrGet(filename)
  220.       Returns NetWare file attributes
  221.  
  222.     n3FileAttrSet(filename, attribs, mode)
  223.       Sets NetWare file attributes
  224.  
  225. NetWare 4 extender 14007  First showing up in WB 5.1A
  226.  
  227.   Changed functions:
  228.  
  229.      n4memberGet(group, user)
  230.      n4memberSet(group, user)
  231.      n4memberDel(group, user)
  232.  
  233.        these functions no longer take a 'server' parameter (they change the
  234.        groups on all servers)
  235.  
  236.   New functions:
  237.  
  238.     n4ServerList(request)
  239.       Returns name of connected servers(s)
  240.  
  241.     n4FileAttrGet(filename)
  242.       Returns NetWare file attributes
  243.  
  244.     n4FileAttrSet(filename, attribs, mode)
  245.       Sets NetWare file attributes
  246.  
  247. WB 5.1C  April 18, 1995
  248.  
  249.         Fixed problem with compiler and compiled WBT's causing a sharing
  250.         violation if the DLL was on a network and not marked read-only.
  251.  
  252.         Fixed problem with compiler and compiled WBT's not finding the DLL
  253.         if it was located in the Windows or Windows System directory.
  254.  
  255.         Fixed problem with large compiled WBT's being unable to extract the
  256.         WIL DLL when run on a disk >= 4 gigabytes in size.
  257.  
  258.         In WILX.DLL extender -- fixed problem with xDriveReady sometimes
  259.         causing a GP fault.
  260.  
  261.  
  262. DLL 2.2abg  First showing up in WB 5.1C
  263.  
  264.         Added two new string constants: @CR and @LF
  265.  
  266.         Fixed bug in BinaryIndex where it wouldn't find the last character
  267.         in the buffer.
  268.  
  269. WB 5.1D  July 18, 1995
  270.  
  271.   WinBatch compiler: for new projects, compiler will use settings (type,
  272.   icon, and extenders) from the last project.
  273.  
  274.  
  275. DLL 2.2abh  First showing up in WB 5.1D
  276.  
  277.   **************************************************************************
  278.   IMPORTANT: File delimiters
  279.   **************************************************************************
  280.  
  281.   In order to support long file names in Windows NT and Windows 95, which
  282.   can contain embedded spaces, we have changed the default file delimiter,
  283.   used to delimit lists of files and directories, to a TAB in the 32-bit
  284.   version of WIL.  In the 16-bit version of WIL, the default delimiter has
  285.   not changed, and remains a space.
  286.  
  287.   Note that this is the "default" file delimiter.  We have added the ability
  288.   to change the file delimiter to a character of your own choosing, using
  289.   the new IntControl 29.  If you are using the 32-bit version of WIL, and
  290.   want to make the file delimiter a space for compatability with existing
  291.   scripts, you can place the following line at the beginning of each of your
  292.   scripts:
  293.  
  294.     IntControl(29, " ", 0, 0, 0)
  295.  
  296.   Conversely, if you want to standardize on a TAB delimiter, you can use:
  297.  
  298.     IntControl(29, @TAB, 0, 0, 0)
  299.  
  300.   Apostrophes (') and back quotes (`) are no longer treated as special
  301.   characters to delimit file names containing spaces.  They are now treated
  302.   as ordinary characters in a file name.
  303.  
  304.   ----------------------------
  305.   Functions which are affected
  306.   ----------------------------
  307.  
  308.   The most important functions affected by this change are:
  309.  
  310.     DirItemize
  311.     DiskScan
  312.     FileItemize
  313.  
  314.   which now return lists delimited by the current file delimiter character.
  315.  
  316.   The following functions, which take file or directory lists as input
  317.   parameters, now expect the lists to be delimited by the current file
  318.   delimiter character.  However, they now also accept lists delimited with a
  319.   TAB or a vertical bar ("|", which may be easier to code in a WIL script):
  320.  
  321.     DirItemize
  322.     DirRemove
  323.     DiskFree
  324.     FileAppend
  325.     FileAttrSet
  326.     FileCopy
  327.     FileDelete
  328.     FileItemize
  329.     FileMove
  330.     FileRename
  331.     FileSize
  332.     FileTimeSet
  333.     FileTimeTouch
  334.  
  335.   Note that DiskFree will continue to accept space-delimited lists as input.
  336.  
  337.   **************************************************************************
  338.  
  339.   New IntControl:
  340.  
  341.     IntControl(29, delimiter, 0, 0, 0)
  342.       Changes the default file delimiter.
  343.  
  344.     The first parameter is the new file delimiter you want to use, and must
  345.     be a single character.  The return value of the function is the previous
  346.     file delimiter character.  If you specify an empty string ("") as the
  347.     first parameter, the function will return the current file delimiter
  348.     character but the file delimiter will not be changed.
  349.  
  350.   Added option to WinMetrics: WinMetrics(-4) will return the Windows
  351.   platform:
  352.  
  353.     0 = Other
  354.     1 = Windows
  355.     2 = Windows for Workgroups
  356.     3 = Win32s
  357.     4 = Windows NT
  358.     5 = Windows 95
  359.  
  360.   In StrSub, you can now specify a length of -1, which will extract the rest
  361.   of the string.
  362.  
  363.   In TimeWait, you can now specify "00:00:00" for the date, which will wait
  364.   for the next occurrence of the specified time (ie, today or tomorrow).
  365.  
  366.   Added support for 3-D Dialog's in Windows NT, if CTL3D32.DLL is present in
  367.   the SYSTEM32 directory.
  368.  
  369.   Fixed TimeAdd so that it doesn't trim out leading zeros in each field.
  370.  
  371.   The Wallpaper function now obeys the tile parameter in Windows 95.
  372.  
  373.   Improved handling of colors in Dialog function.
  374.  
  375.   Added 3D effect to radio buttons and checkboxes in Dialog function.
  376.  
  377.   Fixed problem where if an error occurred in a called WBT, control would go
  378.   to the "Cancel" label in the calling program.
  379.  
  380.   In Dialog and DialogBox, you can now really use IntControl(4) to allow the
  381.   dialog to be closed without selecting a file, even if there is an edit box
  382.   associated with a file listbox.  If you press a pushbutton after changing
  383.   the file mask in an edit box, the listbox will be updated with the new
  384.   mask. But if you press a pushbutton without changing the file mask, the
  385.   dialog will close (and will return a file name of "NOFILESELECTED").
  386.  
  387.   Fixed problem where string variables were not converted properly to
  388.   integers at the beginning of a "For" loop.
  389.  
  390.   Fixed problem where lines that should have been ignored (eg, if they
  391.   followed a Break statement) could cause errors if they contained invalid
  392.   syntax.
  393.  
  394.   If the second parameter of an IntControl(12) statement is "" or "0", any
  395.   previously-set exit message will now be cleared.  Also, you can now
  396.   specify a message beginning with "0".
  397.  
  398.   Fixed problem processing "If" statements with a blank string to the left
  399.   of the equals sign.
  400.  
  401.   Fixed a problem in the 32-bit version where the Dialog function would
  402.   return an invalid file name (garbage characters) if no file was selected.
  403.  
  404.   Improved IsKeyDown processing (especially under Windows 95).
  405.  
  406.   Improved Ctrl-Break checking (especially under Windows 95).
  407.  
  408.   Made WinWaitClose steal less processor time in the 32-bit version.
  409.  
  410.  
  411. WB 5.1E  Aug 3, 1995
  412.  
  413.   In the 32-bit version of WinBatch, it is now possible to run WinBatch
  414.   files whose names contain spaces, by delimiting the file name with
  415.   double quotes on the WinBatch command line.  For example:
  416.  
  417.     WBAT32I "Sample Program.WBT" param1 param2
  418.  
  419.   CallExt now handles file names containing spaces, in 32-bit version.
  420.  
  421.   32-bit version of WinBatch will now run WBT's with file names longer than
  422.   64 characters.
  423.  
  424.   INI settings have been moved from WWW-PROD.INI to the registry, under key:
  425.  
  426.     HKEY_LOCAL_MACHINE\SOFTWARE\Wilson WindowWare\Settings\WWW-PROD
  427.  
  428.  
  429. DLL 2.2abj  First showing up in WB 5.1E
  430.  
  431.   For functions which take a partial window name, you can now specify a
  432.   tilde (~) as the first character of the window name, which will match any
  433.   window containing the specified string anywhere in its title (ie, not
  434.   necessarily at the beginning of the title).  For example, "~Notepad" will
  435.   match a window title of "(Untitled) - Notepad" and a window title of "My
  436.   Notepad Application", as well as a window title of "Notepad - (Untitled)".
  437.   This should prove especially useful under Windows 95.  A '~' at the end of
  438.   the specified window name indicates (as before) that the name must match
  439.   the window title through to the end of the title.  So, "~Notepad~" will
  440.   match a window title of "Notepad" and a window title of "(Untitled) -
  441.   Notepad", but will not match a window title of "Notepad - (Untitled)".
  442.  
  443.   New function:
  444.  
  445.     WinIdGet(partial-winname).
  446.       Returns a unique "Window ID" (pseudo-handle) for the specified window.
  447.  
  448.   New functions to manipulate Windows 95 shortcut link files (Windows 95 only):
  449.  
  450.     ShortcutEdit(linkname, pathname, params, workdir, showmode)
  451.       Modifies the specified shortcut file.
  452.         showmode = @NORMAL, @ZOOMED, or @ICON
  453.  
  454.     ShortcutExtra(linkname, description, hotkey, iconpath, iconindex)
  455.       Sets additional information for the specified shortcut file.
  456.         iconindex = 0=based index of desired icon in "iconpath"
  457.  
  458.     ShortcutInfo(linkname)
  459.       Returns information on the specified shortcut file (TAB-delimited):
  460.         path, params, workdir, showmode, desc, hotkey, iconpath, iconindex
  461.  
  462.     ShortcutMake(linkname, pathname, params, workdir, showmode)
  463.       Creates a shortcut for the specified filename.
  464.         showmode = @NORMAL, @ZOOMED, or @ICON
  465.  
  466.   In 32-bit version, Run... commands now support file and directory names
  467.   containing spaces.
  468.  
  469.   In 32-bit version, Run... commands no longer support the undocumented
  470.   method of running a program with a non-standard extension (eg,
  471.   "SSSTARS.SCR") by replacing the period (.) in the file name with an
  472.   asterisk (*).  However, this is no longer necessary, as the Run...
  473.   commands in the 32-bit version can now run such programs directly.
  474.  
  475.   The 32-bit bit version is now able to run Windows 95 shortcut files under
  476.   Windows 95, using any of the Run... functions.  The "Run" mode specified
  477.   in the shortcut file (ie: "Normal window", "Minimized", or "Maximized")
  478.   will always be obeyed, any command-line parameters specified in the
  479.   shortcut's "Target" field will override any parameters passed by the
  480.   Run... function, and a working directory specified in the shortcut's
  481.   "Start in" field will override a working directory parameter in RunShell.
  482.  
  483.   New directory attribute functions:
  484.  
  485.     DirAttrGet(dirname)
  486.       Gets directory attributes (like FileAttrGet)
  487.  
  488.     DirAttrSet(dir-list, settings)
  489.       Sets directory attributes (like FileAttrSet)
  490.  
  491.   FileAttrGet and FileAttrSet now return an error if a directory name is
  492.   specified.  Use the new DirAttrGet and DirAttrSet instead.
  493.  
  494.   New functions (32-bit version only -- the 16-bit version will just return
  495.   the passed file name):
  496.  
  497.     FileNameLong(filename)
  498.       Returns the long version of a filename.
  499.  
  500.     FileNameShort(filename)
  501.       Returns the short (ie, 8.3) version of a filename.
  502.  
  503.   New IntControl (32-bit, Windows NT only):
  504.  
  505.     IntControl(30, "sourcefile", "destination", 0, 0)
  506.       Performs a delayed file move.  The file is not actually moved until
  507.       the operating system is restarted.  
  508.  
  509.   New registry functions (32-bit version only):
  510.  
  511.     RegApp(progname, path)
  512.       Creates registration entries for a program under "App Paths".
  513.  
  514.     RegDelValue(handle, subkey-string)
  515.       Removes a named value for the specified subkey from the registry.
  516.  
  517.   In 32-bit version, PlayMidi function now support file and directory names
  518.   containing spaces.
  519.  
  520.   New function (32-bit version only):
  521.  
  522.     InstallFile(filename, targname, default-targdir, delete-old, flags)
  523.       Installs and uncompresses file.
  524.  
  525.   New function (menu-based implementations only):
  526.  
  527.     CurrFilePath()
  528.       Returns the full path+filename of the currently-selected file.
  529.  
  530.       Like CurrentFile, but returns a full pathname.
  531.  
  532.   New IntControl (32-bit, Windows 95 only):
  533.  
  534.     IntControl(31, 0, 0, 0, 0)
  535.       Returns a tab-delimited list of WinId's for all open Explorer windows.
  536.  
  537.   IntControl(67) and IntControl(68) now work in Windows 95.
  538.  
  539.   DosVersion now returns correct values in Windows 95.
  540.  
  541.   Added new request #'s to WinResources for 32-bit version:
  542.  
  543.     The existing request #'s (0-4) will still work, but are not useful on
  544.     32-bit platforms.
  545.  
  546.     It is not possible to determine free system resources in the 32-bit
  547.     version.
  548.  
  549.   Fixed problem with Dialog and DialogBox returning "NOFILESELECTED" even
  550.   if a file was selected, if IntControl(4) was set.
  551.  
  552.   INI settings have been moved from WWW-PROD.INI to the registry, under key:
  553.  
  554.     HKEY_LOCAL_MACHINE\SOFTWARE\Wilson WindowWare\Settings\WWW-PROD
  555.  
  556.  
  557. WB 95B  Sept 7, 1995
  558.  
  559.   New Box functions:
  560.  
  561.     BoxButtonDraw(BoxID, button ID, "text", "rect")
  562.     BoxButtonKill(BoxID, button ID)
  563.     BoxButtonStat(BoxID, button ID)
  564.     BoxCaption(BoxID, caption)
  565.     BoxColor(BoxID, "color", wash color)
  566.     BoxDataClear(BoxID, "tag")
  567.     BoxDataTag(BoxID, "tag")
  568.     BoxDestroy(BoxID)
  569.     BoxDrawCircle(BoxID, "rect", style)
  570.     BoxDrawLine(BoxID, "rect")
  571.     BoxDrawRect(BoxID, "rect", style)
  572.     BoxDrawText(BoxID, "rect", "text", erase flag, alignment)
  573.     BoxesUp("rect", show mode)
  574.     BoxMapMode(BoxID, map mode)
  575.     BoxNew(BoxID, "rect", style)
  576.     BoxPen(BoxID, "color", width)
  577.     BoxTextColor(BoxID, "color")
  578.     BoxTextFont(BoxID, "name", size, style, family)
  579.     BoxUpdates(BoxID, update flag)
  580.  
  581.   The 32-bit WinBatch compiler now allows you to specify an icon for the EXE
  582.   being compiled.
  583.  
  584.  
  585. DLL 2.2abk  First showing up in WB 95B
  586.  
  587.   In the 32-bit version, the Run... functions will look in the registry
  588.   under "App Paths" for the location of the specified program, if you do not
  589.   specify a path for it.
  590.  
  591.   In the 32-bit version, the Run... functions will look in the registry
  592.   under "App Paths" for a "Path" setting for the specified program, and, if
  593.   found, will prepend it to the "PATH" environment variable before running
  594.   the program.
  595.  
  596.   In the 32-bit version, the following functions now work, but only with
  597.   32-bit applications:
  598.  
  599.     AppExist
  600.     AppWaitClose
  601.     WinExeName
  602.  
  603.   In the 32-bit version, AppExist and AppWaitClose are not able to detect
  604.   the existence of 16-bit DOS or Windows applications, and WinExeName will
  605.   return the string "(16-bit application)".
  606.  
  607.   In the 32-bit version under Windows NT, these functions accept (and
  608.   return) module names instead of full program names.  The module name is
  609.   usually the same as the root name of the program, without the extension.
  610.   For example, WinExeName("Program Manager") will return "progman".  With
  611.   AppExist and AppWaitClose, any file extension or path information which is
  612.   part of the 'program-name' parameter is ignored; so, for example,
  613.   AppExist("c:\temp\progman.exe") will return TRUE if Program Manager is
  614.   running, regardless of what directory PROGMAN.EXE is actually located in.
  615.   One exception: WinExeName("") will return a full path to the program
  616.   making the current call to the WIL Interpreter.
  617.  
  618.   BinaryPeekStr, BinaryPokeStr, and BinaryStrCnt now check for (and reject)
  619.   negative parameters.
  620.  
  621.   RunWait now gives up some processor time while it's waiting.
  622.  
  623.   New function (32-bit version only):
  624.  
  625.     WinSysInfo()
  626.       Returns a tab-delimited list of system configuration information:
  627.  
  628.     This function should be used instead of WinConfig in the 32-bit version.
  629.  
  630.   Additional request #'s for WinMetrics (32-bit version only):
  631.  
  632.   New mouse functions:
  633.  
  634.     MouseClick(click-type, modifiers)
  635.       Clicks mouse button(s).
  636.  
  637.     MouseClickBtn(win-name, child-win, button-text)
  638.       Clicks on the specified button control.
  639.  
  640.     MouseMove(x, y, win-name, child-win)
  641.       Moves the mouse to the specified X-Y coordinates (based on a 1000 x
  642.       1000 screen).
  643.  
  644.   Fixed problem where an invalid YmdHms string containing two consecutive
  645.   colons could cause a GP Fault.
  646.  
  647.   In the 32-bit version, AppExist and AppWaitClose will now wait several
  648.   seconds for the specified application to appear.
  649.  
  650.   Fixed problem in menu-based WIL applications where tabs in menu item
  651.   descriptions would be displayed as non-printable "black-box" characters.
  652.  
  653.   Added new request #'s to MouseInfo:
  654.  
  655.   In the 32-bit version, IconReplace now supports 32-bit EXE files.  The
  656.   replacement icon must be the exact same size as the original icon.
  657.  
  658.   New IntControl:
  659.  
  660.     IntControl(32, address, "data type", 0, 0)
  661.       Returns the contents of the memory location specified by "address".
  662.  
  663.   Fixed WinMetrics(-1) with 32-bit graphics cards.  It was returning -1 for
  664.   these; it now returns 2,147,483,647.
  665.  
  666.  
  667. WB 95C  Oct 10, 1995
  668.  
  669.   New function:
  670.  
  671.     BoxButtonWait()
  672.       Waits for any button in any box to be pressed.
  673.  
  674.   Fixed problem with WinBatch locking up when minimizing a WinBatch box that
  675.   was displaying width-justified text.
  676.  
  677.  
  678. DLL 2.2abl  First showing up in WB 95C
  679.  
  680.   Fixed problem with DirExist returning @FALSE for a UNC which was a root
  681.   directory share on another machine (eg, "\\SERVER\C").
  682.  
  683.   DirMake will now create multi-level directories (eg, "C:\ABC\DEF\GHI").
  684.  
  685.   New functions:
  686.  
  687.     BinaryIndexNc(handle, offset, string, direction)
  688.       Like BinaryIndex, but case-insensitive.
  689.  
  690.     WinItemNameId()
  691.       Returns a list of top-level window names and their "Window ID's", in
  692.       the form:
  693.         "window1-name|window1-ID|window2-name|window2-ID|..."
  694.  
  695.     In the 32-bit version, Delay and TimeDelay functions now accept
  696.     floating point numbers: eg, Delay(0.5).
  697.  
  698.   New function:
  699.  
  700.     ShellExecute(file-name, params, directory, display mode, operation)
  701.       Performs a ShellExecute.
  702.  
  703.   New function (32-bit version only):
  704.  
  705.     RegQueryItem(handle, subkey)
  706.       Returns a tab-delimited list of named data items for the specified
  707.       subkey.
  708.  
  709.   New IntControl:
  710.  
  711.     IntControl(33, p1, 0, 0, 0)
  712.       Controls whether a listbox control in a dialog box allows multiple
  713.       items to be selected.
  714.  
  715.         P1  Meaning
  716.         --  -------
  717.         0   Single selection
  718.         1   Multiple selection (default)
  719.  
  720.   Improved registry functions in 32-bit version:
  721.  
  722.     RegSetValue, RegQueryValue, and RegDelValue:
  723.  
  724.       1. SEE NOTE BELOW!! Can now specify a named value of [Default] to
  725.          indicate the primary value for the key (shown in the Registry
  726.          Editor as "(Default)"); eg:
  727.  
  728.            RegSetValue(mykey, "[Default]", "some data")
  729.  
  730.          (*** The above feature was subsequently removed in version 96C ***)
  731.  
  732.       2. Can now specify a subkey string containing a named value; eg:
  733.  
  734.            RegSetValue(mykey, "MySubKey[MyItem]", "some data"), or,
  735.            RegSetValue(mykey, "MySubKey\[MyItem]", "some data")
  736.  
  737.   Fixed WaitForKey in the 32-bit version.
  738.  
  739.   In the 32-bit version, you can now use the Run... functions to "run" data
  740.   files (eg, Run("win.ini", "")).
  741.  
  742.   FileItemize and DirItemize now handle names containing spaces.
  743.  
  744.   In 32-bit version, fixed problem with 3D dialogs not being used under
  745.   Windows NT.
  746.  
  747.  
  748. WB 95D  Nov 1, 1995
  749.  
  750.   Compiler now optimizes WBT's by removing comment lines and whitespace.
  751.  
  752.   OLE automation (ObjectOpen and ObjectClose functions) now supported in
  753.   32-bit version.
  754.  
  755.   When a custom icon is specified, the 32-bit compiler now installs it as
  756.   the icon that is displayed in the Win95 Explorer window, as well as the
  757.   icon that is shown in the task bar.
  758.  
  759.   Fixed a problem with some of the Box functions, where a color or font that
  760.   was specified in a definition-type command (such as BoxTextColor) would be
  761.   used for an output-type command (such as BoxDrawText) that preceded it in
  762.   the command stack, instead of the default color or font being used.
  763.  
  764.  
  765. DLL 2.2abl  First showing up in WB 95D
  766.  
  767.   New registry functions (32-bit version only):
  768.  
  769.     RegQueryBin(handle, subkey)
  770.       Retrieves a binary value from the registry.
  771.  
  772.     RegQueryDword(handle, subkey)
  773.       Retrieves a DWORD value from the registry.
  774.  
  775.     RegSetBin(handle, subkey, value)
  776.       Sets a binary value in the registry.
  777.  
  778.     RegSetDword(handle, subkey, value)
  779.       Sets a DWORD value in the registry.
  780.  
  781.   New date/time functions:
  782.  
  783.     TimeJulToYmd(julian-date)
  784.       Converts the specified Julian date value to a date in YmdHms format.
  785.         Hms will always be "00:00:00".
  786.  
  787.     TimeSubtract(YmdHms1, YmdHms2)
  788.       Subtracts YmdHms2 from YmdHms1.
  789.         YmdHms2 can not be larger than YmdHms1.
  790.  
  791.   New IntControl's:
  792.  
  793.     IntControl(34, p1, 0, 0, 0)
  794.       Returns the error message string which corresponds to the specified
  795.       WIL error.
  796.         p1 = error number.
  797.  
  798.     IntControl(35, p1, 0, 0, 0) (32-bit version only)
  799.       Adjusts SendKey delay.
  800.         p1 = amount of time to delay between each keypress, in milliseconds
  801.         (1000 milliseconds = 1 second).
  802.       Returns previous delay setting.
  803.  
  804.       The default delay (in the 32-bit version) is 25.  Specify a larger
  805.       number to slow SendKey down, or a smaller number to speed it up
  806.       (0 = no delay).
  807.  
  808.     IntControl(36, p1, p2, 0, 0) (32-bit version only)
  809.       Waits until an application is waiting for user input.
  810.         p1 = window name associated with application
  811.         p2 = timeout, in milliseconds (-1 = no timeout)
  812.  
  813.   In dialog boxes, if you create an EDITBOX field with a variable name that
  814.   begins with "PW_", it will be treated as a password field (ie, asterisks
  815.   will be echoed instead of the actual characters that the user types).
  816.  
  817.   In dialog boxes, file listboxes now use long file names in the 32-bit
  818.   version under Windows 95.
  819.  
  820.   In the DiskScan function, request numbers 8 (CD_ROM) and 16 (RamDisk) are
  821.   now supported in the 16-bit version.
  822.  
  823.   In 32-bit version, added 3D effects to dialog listboxes and edit controls
  824.   under Windows 95.
  825.  
  826.   SendMenusTo now accepts a Window ID for the window name parameter.
  827.  
  828.   In 32-bit version, fixed a problem using the Run[] commands to launch a
  829.   Windows 95 shortcut file.
  830.  
  831.   InstallFile function now supported in 16-bit version.
  832.  
  833.  
  834. NetWare 3 extender 12013  First showing up in WB 95D
  835.  
  836.   Fixed a problem with n3GetMapped, if the specified server name was also
  837.   the partial name of another server (eg, if you specified "\\SERVER1" and
  838.   you also had a server named "\\SERVER10").
  839.  
  840.   n3FileAttrGet and n3FileAttrSet can now be used to get and set directory
  841.   attributes.
  842.  
  843.  
  844. NetWare 4 extender 14010  First showing up in WB 95D
  845.  
  846.   Fixed n4Detach function; it now does a full detach, and it now returns
  847.   @FALSE if it is unable to detach from the monitored connection (ie, from
  848.   the primary or login server).
  849.  
  850.   Fixed a problem with n4GetMapped, if the specified server name was also
  851.   the partial name of another server (eg, if you specified "\\SERVER1" and
  852.   you also had a server named "\\SERVER10").
  853.  
  854.   n4FileAttrGet and n4FileAttrSet can now be used to get and set directory
  855.   attributes.
  856.  
  857.  
  858. WB 95E  Nov 2, 1995
  859.  
  860.  
  861. DLL 2.2abm  First showing up in WB 95E
  862.  
  863.   In 16-bit version, fixed a problem with DirMake creating a directory name
  864.   containing high ANSI characters (>127).
  865.  
  866.  
  867. WB 96A  Jan 1, 1996
  868.  
  869.   WinBatch for PowerPC now available.
  870.  
  871.   New IntControl:
  872.  
  873.     IntControl(1000, p1, 0, 0, 0)
  874.       Sets the exit code returned by WinBatch.
  875.  
  876.   Fixed the "Help" button in the WinBatch compiler.
  877.  
  878.   In the BoxColor function, the gradient effect (wash color) now works with
  879.   video drivers > 256 colors.
  880.  
  881. DLL 2.3abm  First showing up in WB 96A
  882.  
  883.   New function:
  884.  
  885.     DiskInfo(drive-letter, request#)
  886.       Returns information on the specified disk drive.
  887.  
  888.       Req#   Return value
  889.       ----   ------------
  890.        1     sectors per cluster
  891.        2     bytes per sector
  892.        3     number of free clusters
  893.        4     total number of clusters
  894.  
  895.  
  896.   New IntControl's:
  897.  
  898.     IntControl(37, p1, p2, p3, 0)
  899.       Replaces the specified icon in an EXE file.
  900.  
  901.         p1 = EXE file
  902.         p2 = icon file
  903.         p3 = ordinal position of icon to replace
  904.  
  905.       This is similar to the IconReplace function, except it allows you to
  906.       change an icon other than the first icon in the file.
  907.  
  908.       Note: This IntControl is subject to change in future versions.
  909.  
  910.     IntControl(39, p1, 0, 0, 0)
  911.       Sets the file sharing mode for file reads.
  912.         p1 = share mode for file reads (default = 1)
  913.  
  914.       Valid share modes are:
  915.         -1 = don't change (keep current setting)
  916.          0 = prevent the file from being shared
  917.          1 = allow other open operations for read access
  918.          2 = allow other open operations for write access
  919.          3 = allow other open operations for read and write access
  920.  
  921.       This affects the FileOpen("READ") and BinaryRead functions.
  922.  
  923.       Returns previous setting.
  924.  
  925.     IntControl(40, p1, 0, 0, 0)
  926.       Sets the file sharing mode for file writes.
  927.         p2 = share mode for file writes (default = 0)
  928.  
  929.       This affects the FileOpen("WRITE"/"APPEND") and BinaryWrite functions.
  930.  
  931.       Returns previous setting.
  932.  
  933.       See IntControl(39) for a list of valid share modes.
  934.  
  935.   New return code for WinMetrics(-3):  4 = PowerPC32
  936.  
  937.   In 32-bit version, fixed a problem using DirName with directory names
  938.   containing spaces or commas.
  939.  
  940.   Fixed problem with TimeJulToYmd with years >= 2000.
  941.  
  942.   FileWrite now returns an error if the write failed.
  943.  
  944.   In 16-bit version, fixed problem  with DiskScan causing a GP fault on
  945.   systems with Stacker compression software installed.
  946.  
  947.   In 32-bit version, the following functions are now a little more
  948.   well-behaved in giving up processor time: RunWait (and RunShell with the
  949.   "@WAIT" parameter), AppWaitClose, and Delay/TimeDelay.
  950.  
  951.   Fixed a problem with the Dialog function, where if you defined an EDITBOX
  952.   control after a FILELISTBOX control, the file listbox would revert to a
  953.   filespec of "*.*".
  954.  
  955.   In 32-bit version, fixed a prooblem with the Dialog function, where if you
  956.   had a filespec other than "*.*", it would not show subdirectories in the
  957.   file list.
  958.  
  959.   In 32-bit version, added some code to the ClipGet and ClipPut functions to
  960.   try to avoid "Clipboard owned by another app" error messages.
  961.  
  962.   Fixed problem with TimeWait, when specifying a date of "00:00:00" and a
  963.   time that was earlier than the current time.
  964.  
  965.   In 32-bit version, added a 25-millisecond delay between keystrokes sent
  966.   using the SendKey function.  This can be adjusted using IntControl(35).
  967.  
  968.   Fixed problem with PlayWaveForm in 32-bit version.
  969.  
  970.  
  971. Windows 32 extender 10004
  972.  
  973.   netDirDialog no longer returns an error if user presses "Cancel".
  974.  
  975.  
  976. Dialog Editor 96A
  977.   Fixed the "Help" menu.
  978.  
  979.  
  980. WB 96B  Feb 12, 1996
  981.  
  982.   In the 16-bit version, fixed a problem where doing a BoxDestroy
  983.   immediately after resizing a box window caused a GPF.
  984.  
  985.   Fixed a resource leak problem with BoxColor when using gradient effects.
  986.  
  987.  
  988. DLL 2.3bbm  First showing up in WB 96B
  989.  
  990.   New binary functions:
  991.  
  992.     BinaryHashRec(buffer, recsize, keyoffset, keysize, keyval)
  993.  
  994.       Returns a pointer to a record in a binary buffer, using a hashing
  995.       algorithm.
  996.  
  997.     BinaryIncr(buffer, offset)
  998.     BinaryIncr2(buffer, offset)
  999.     BinaryIncr4(buffer, offset)
  1000.     BinaryIncrFlt(buffer, offset)
  1001.  
  1002.       These functions are equivalent to doing a BinaryPeek[...],
  1003.       incrementing the extracted value by 1, and then doing a
  1004.       BinaryPoke[...] to store the new value.
  1005.  
  1006.       They return the new value.
  1007.  
  1008.     BinaryPeek2(buffer, offset)
  1009.     BinaryPeek4(buffer, offset)
  1010.     BinaryPeekFlt(buffer, offset)
  1011.  
  1012.       These functions are like BinaryPeek, but they extract 2, 4, or 8 bytes
  1013.       (respectively) beginning at "offset"
  1014.  
  1015.     BinaryPoke2(buffer, offset, value)
  1016.     BinaryPoke4(buffer, offset, value)
  1017.     BinaryPokeFlt(buffer, offset, value)
  1018.  
  1019.       These functions are like BinaryPoke, but they store the specified
  1020.       "value" in 2, 4, or 8 bytes (respectively) beginning at "offset".
  1021.  
  1022.     BinarySort(buffer, recsize, keyoffset, keysize, flags)
  1023.  
  1024.       Sorts records in a binary buffer.  The buffer is sorted in place.
  1025.  
  1026.   Change to BinaryIndex and BinaryIndexNc:
  1027.  
  1028.     You can now specify a blank string ("") for the "string" parameter, in
  1029.     which case the function will return the offset of the first non-NULL
  1030.     character found, starting at "offset".
  1031.  
  1032.   Fixed BinaryIndexNC
  1033.   
  1034.   BinaryPoke now correctly returns the previous value, as documented.
  1035.  
  1036.   In the 32-bit version, KeyToggleSet no longer returns an error (however,
  1037.   it is still subject to the limitations described in the documentation).
  1038.  
  1039.   In the 16-bit version, fixed DirAttrSet.
  1040.  
  1041.   The following string functions:
  1042.  
  1043.     StrIndex
  1044.     StrScan
  1045.     StrSub
  1046.  
  1047.   no longer return an error for illegal bounds conditions.  Instead,
  1048.   StrIndex/StrScan now return a 0, and StrSub returns a blank string.
  1049.  
  1050.  
  1051. WB 96C  Mar 22, 1996
  1052.  
  1053.   FileMenu now works in Windows NT 4.0.
  1054.  
  1055.   PopMenu now works in Windows NT 4.0.
  1056.  
  1057.   Fixed problem where BoxButtonDraw didn't change the text of an existing
  1058.   button, or of a button which had previously existed but had been removed
  1059.   with BoxButtonKill.
  1060.  
  1061.  
  1062. DLL 2.3cbm  First showing up in WB 96C
  1063.  
  1064.   In 32-bit version, the following functions now work in Windows NT 4.0:
  1065.  
  1066.     ShortcutEdit
  1067.     ShortcutExtra
  1068.     ShortcutInfo
  1069.     ShortcutMake
  1070.  
  1071.   In 32-bit version, the Run... functions can now be used to launch shortcut
  1072.   files in Windows NT 4.0.
  1073.  
  1074.   In 32-bit version, added 3D effects to Windows NT 4.0.
  1075.  
  1076.   In 32-bit version, fixed problem with licensing dialog in Windows NT 4.0.
  1077.  
  1078.   In 32-bit version, the following registry functions:
  1079.  
  1080.     RegSetValue
  1081.     RegQueryValue
  1082.     RegDelValue
  1083.  
  1084.   no longer treat a named value of [Default] as indicating the primary value
  1085.   for a key (and, therefore, it is now possible to access a value which is
  1086.   actually named "Default").
  1087.  
  1088.   In 32-bit version, fixed problem with international strings not being used.
  1089.  
  1090.   New registry functions (32-bit version only):
  1091.  
  1092.     RegQueryExpSz(handle, subkey)
  1093.       Retrieves a REG_EXPAND_SZ value from the registry.
  1094.  
  1095.     RegQueryMulSz(handle, subkey, delimiter)
  1096.       Retrieves a REG_MULTI_SZ value from the registry.
  1097.  
  1098.     RegSetExpSz(handle, subkey, value)
  1099.       Sets a REG_EXPAND_SZ value in the registry.
  1100.  
  1101.     RegSetMulSz(handle, subkey, value, delimiter)
  1102.       Sets a REG_MULTI_SZ value in the registry.
  1103.  
  1104.   In 32-bit version, fixed problem with RegQuery... functions when there
  1105.   was a backslash between the subkey string and a named value, eg:
  1106.  
  1107.     RegQueryValue(mykey, "MySubKey[MyItem]", "some data")  -- this worked
  1108.     RegQueryValue(mykey, "MySubKey\[MyItem]", "some data") -- this didn't
  1109.  
  1110.   RegQuery, RegQueryBin, and RegSetBin can now handle longer strings (up to
  1111.   available WIL string space).
  1112.  
  1113.   In 32-bit version, fixed problem with OLE string parameters.
  1114.  
  1115.   In 32-bit version, fixed problem with RegQueryBin with certain values.
  1116.  
  1117.   In 32-bit version, fixed problem with RegSetDword with large values.
  1118.  
  1119.   Fixed problem with TimeSubtract, where the result could have a day of "00"
  1120.   (eg, "96:04:00" instead of "96:03:31").
  1121.  
  1122.   In 16-bit version, fixed WinItemNameId.
  1123.  
  1124.   Fixed problem with BinaryHashRec crashing if there was only one record in
  1125.   the buffer.
  1126.  
  1127.  
  1128. NetWare 3 extender 12014  First showing up in WB 96C
  1129.  
  1130.   Fixed n3FileAttrGet and n3FileAttrSet.
  1131.  
  1132.   n3FileAttrGet and n3FileAttrSet no longer support directories (use new
  1133.   functions n3DirAttrGet and n3DirAttrSet instead).
  1134.  
  1135.   New functions:
  1136.  
  1137.     n3DirAttrGet(dirname)
  1138.       Same as n3FileAttrGet, but for directory attributes.
  1139.  
  1140.     n3DirAttrSet(dirname, attribs, mode)
  1141.       Same as n3FileAttrSet, but for directory attributes.
  1142.  
  1143.     n3MapDir(net-path, local-name)
  1144.       Like n3Map, but performs a regular (non-root) map.
  1145.  
  1146.     n3MapRoot(net-path, local-name)
  1147.       Identical to n3Map.
  1148.  
  1149.   With n3Map[..], it is no longer necessary to add a trailing backslash when
  1150.   mapping to the root of a volume.
  1151.  
  1152.   New functions:
  1153.  
  1154.     n3CapturePrt(s:server-name, s:queue-name, i:port-number, s:flags)
  1155.       Captures a local printer port to a Netware printer queue.
  1156.  
  1157.         "port-number" is a number from 1 to 9 (where 1 = "LPT1", etc).
  1158.  
  1159.         "flags" is a tab-delimited list of keyword=value pairs, ie:
  1160.  
  1161.           "key1=value1%@TAB%key2=value2%@TAB%key3=value3..."
  1162.  
  1163.         Valid keywords are:
  1164.  
  1165.           JobDescription
  1166.           JobControlFlags
  1167.           TabSize
  1168.           NumCopies
  1169.           PrintFlags
  1170.           MaxLines
  1171.           MaxChars
  1172.           FormName
  1173.           FormType
  1174.           BannerText
  1175.           FlushCaptureTimeout
  1176.           FlushCaptureOnClose
  1177.  
  1178.         See the Netware 3 extender help file for an explanation of these
  1179.         flags.
  1180.  
  1181.     n3CaptureEnd(i:port-number)
  1182.       Ends a printer capture.
  1183.  
  1184.         "port-number" is a number from 1 to 9 (where 1 = "LPT1", etc).
  1185.  
  1186.     n3GetUserId(s:server-name, s:user-name, i:format)
  1187.       Returns the object ID corresponding to the specified user name.
  1188.  
  1189.         "Format" specifies the format in which the ID is returned:
  1190.  
  1191.           0  Decimal number, in internal Netware format
  1192.           1  Hexadecimal string, such as used for mail directories
  1193.  
  1194.     n3ChgPassword(s:server-name, s:user-name, s:new-password)
  1195.       Changes a user's password.
  1196.  
  1197.         Passwords are NOT case-sensitive.
  1198.  
  1199.         You must be logged in to the specified server.
  1200.  
  1201.     n3GetNetAddr(s:server, i:flags)
  1202.       Returns the internetwork address of the current workstation.
  1203.  
  1204.         "server" can be a blank string (""), in which case the default
  1205.         server is used.
  1206.  
  1207.         "flags" is reserved for future use, and should be set to 0.
  1208.  
  1209.         The return value is a string of hex bytes in the format:
  1210.  
  1211.           x1x2x3x4:y1y2y3y4y5y6:z1z2
  1212.  
  1213.         where:
  1214.  
  1215.           x1x2x3x4     = 4-byte network address
  1216.           y1y2y3y4y5y6 = 6-byte net node address (physical address of workstation's LAN board)
  1217.           z1z2         = socket
  1218.  
  1219.     n3ServerInfo(s:server, i:request)
  1220.       Returns information on the specified Netware server.
  1221.  
  1222.         Request   Meaning
  1223.         -------   -------
  1224.            1      major NetWare version number
  1225.            2      minor NetWare version number
  1226.            3      revision number of the NetWare OS on NetWare server
  1227.            4      maximum number of connections the server will support
  1228.            5      highest number of connections simultaneously in use
  1229.            6      number of connections the server currently has in use
  1230.            7      maximum number of volumes the server will support
  1231.            8      SFT level the server supports
  1232.            9      TTS Level of NetWare server operating system
  1233.  
  1234.     n3UserGroups(s:server, s:username)
  1235.       Lists groups to which the specified user belongs.
  1236.  
  1237.         The return value is a tab-delimited list of groups.
  1238.  
  1239.   Added new request # to n3ServerList:
  1240.  
  1241.     4 = all known servers (TAB-delimited list)
  1242.  
  1243.  
  1244. NetWare 4 extender 14011  First showing up in WB 96C
  1245.  
  1246.   Fixed n4FileAttrGet and n4FileAttrSet.
  1247.  
  1248.   n4FileAttrGet and n4FileAttrSet no longer support directories (use new
  1249.   functions n4DirAttrGet and n4DirAttrSet instead).
  1250.  
  1251.   New functions:
  1252.  
  1253.     n4DirAttrGet(dirname)
  1254.       Same as n4FileAttrGet, but for directory attributes.
  1255.  
  1256.     n4DirAttrSet(dirname, attribs, mode)
  1257.       Same as n4FileAttrSet, but for directory attributes.
  1258.  
  1259.     n4MapDir(net-path, local-name)
  1260.       Like n4Map, but performs a regular (non-root) map.
  1261.  
  1262.     n4MapRoot(net-path, local-name)
  1263.       Identical to n4Map.
  1264.  
  1265.   With n4Map[..], it is no longer necessary to add a trailing backslash when
  1266.   mapping to the root of a volume.
  1267.  
  1268.   New functions:
  1269.  
  1270.     n4CapturePrt(s:server-name, s:queue-name, i:port-number, s:flags)
  1271.       Captures a local printer port to a Netware printer queue.
  1272.  
  1273.         "port-number" is a number from 1 to 9 (where 1 = "LPT1", etc).
  1274.  
  1275.         "flags" is a tab-delimited list of keyword=value pairs, ie:
  1276.  
  1277.           "key1=value1%@TAB%key2=value2%@TAB%key3=value3..."
  1278.  
  1279.         Valid keywords are:
  1280.  
  1281.           JobDescription
  1282.           JobControlFlags
  1283.           TabSize
  1284.           NumCopies
  1285.           PrintFlags
  1286.           MaxLines
  1287.           MaxChars
  1288.           FormName
  1289.           FormType
  1290.           BannerText
  1291.           FlushCaptureTimeout
  1292.           FlushCaptureOnClose
  1293.  
  1294.         See the Netware 4 extender help file for an explanation of these
  1295.         flags.
  1296.  
  1297.     n4CaptureEnd(i:port-number)
  1298.       Ends a printer capture.
  1299.  
  1300.         "port-number" is a number from 1 to 9 (where 1 = "LPT1", etc).
  1301.  
  1302.     n4GetUserId(s:server-name, s:user-name, i:format)
  1303.       Returns the object ID corresponding to the specified user name.
  1304.  
  1305.         "Format" specifies the format in which the ID is returned:
  1306.  
  1307.           0  Decimal number, in internal Netware format
  1308.           1  Hexadecimal string, such as used for mail directories
  1309.  
  1310.     n4ChgPassword(s:server-name, s:user-name, s:old-password, s:new-password)
  1311.       Changes a user's password.
  1312.  
  1313.         "Old-password" must be specified for Directory Services connections,
  1314.         but does not need to be specified for bindery connections.
  1315.  
  1316.         Passwords ARE case-sensitive for Directory Services connections, but
  1317.         NOT for bindery connections.
  1318.  
  1319.     n4GetNetAddr(s:server, i:flags)
  1320.       Returns the internetwork address of the current workstation.
  1321.  
  1322.         "server" can be a blank string (""), in which case the default
  1323.         server is used.
  1324.  
  1325.         "flags" is reserved for future use, and should be set to 0.
  1326.  
  1327.         The return value is a string of hex bytes in the format:
  1328.  
  1329.           x1x2x3x4:y1y2y3y4y5y6:z1z2
  1330.  
  1331.         where:
  1332.  
  1333.           x1x2x3x4     = 4-byte network address
  1334.           y1y2y3y4y5y6 = 6-byte net node address (physical address of workstation's LAN board)
  1335.           z1z2         = socket
  1336.  
  1337.     n4ServerInfo(s:server, i:request)
  1338.       Returns information on the specified Netware server.
  1339.  
  1340.         Request   Meaning
  1341.         -------   -------
  1342.            1      major NetWare version number
  1343.            2      minor NetWare version number
  1344.            3      revision number of the NetWare OS on NetWare server
  1345.            4      maximum number of connections the server will support
  1346.            5      highest number of connections simultaneously in use
  1347.            6      number of connections the server currently has in use
  1348.            7      maximum number of volumes the server will support
  1349.            8      SFT level the server supports
  1350.            9      TTS Level of NetWare server operating system
  1351.  
  1352.     n4UserGroups(s:server, s:username)
  1353.       Lists groups to which the specified user belongs.
  1354.  
  1355.         The return value is a tab-delimited list of groups.  If the
  1356.         specified server is a Directory Services connection, the group names
  1357.         will contain distinguishing path information (eg, "Server1.Users").
  1358.  
  1359.   Added new request # to n4ServerList:
  1360.  
  1361.     4 = all known servers (TAB-delimited list)
  1362.  
  1363.       If the current default server is a Directory Services connection, only
  1364.       servers that are part of Directory Services are returned.  If the
  1365.       current default server is a bindery connection, only servers listed in
  1366.       the bindery are returned.
  1367.  
  1368.  
  1369. Windows 32 extender 10005
  1370.  
  1371.   netGetCon now accepts printer ports higher than LPT3 (up to LPT9).
  1372.